import Vue from 'vue';
import App from './App';
import router from './router';
import axios from 'axios';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';    // 默认主题
// import '../static/css/theme-green/index.css';       // 浅绿色主题
// import basePostRequst from '../service/service';
import vuex from 'vuex';
import "babel-polyfill";
import store from './store/index';
import 'signalr'


let configpath = require('../config')

//使用vuex
Vue.use(vuex);




Vue.use(ElementUI, { size: 'small' });
// Vue.prototype.basePostRequst = basePostRequst;

// var store = new vuex.Store({
//     state:{
//         show:false,
//     }
// })




//使用钩子函数对路由进行权限跳转
router.beforeEach((to, from, next) => {
    const role = localStorage.getItem('ms_username');
    if(!role && to.path !== '/login'){
        next('/login');
    }else if(to.meta.permission){
        // 如果是管理员权限则可进入，这里只是简单的模拟管理员权限而已
        role === 'admin' ? next() : next('/403');
    }else{
        // 简单的判断IE10及以下不进入富文本编辑器，该组件不兼容
        if(navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor'){
            Vue.prototype.$alert('vue-quill-editor组件不兼容IE10及以下浏览器，请使用更高版本的浏览器查看', '浏览器不兼容通知', {
                confirmButtonText: '确定'
            });
        }else{
            next();
        }
    }
})

axios.interceptors.request.use(
    config => {
        // 这里写死一个token，你需要在这里取到你设置好的token的值

        let token = localStorage.getItem('token');
        console.log('token',token);
        // const token = 'JdLCJJc0FkbWluIjp0cnVlfQ.a0-ZtZ9zjc_WborB84-66yJagtOUElcFtLzqeClSQdk';
        if (token) {
            // 这里将token设置到headers中，header的key是Authorization，这个key值根据你的需要进行修改即可

            // this.$axios.defaults.headers.common['Authorization'] = url.data.Ticket
            config.headers.common['Authorization']  = token;
          //  config.headers.common['Authorization']  = "Bearer "+token;
        }
        else 
        {
            config.headers.common['Authorization']  = "";
        }
        return config
    },
    error => {
        return Promise.reject(error)
    });


Vue.prototype.$axios = axios;
Vue.prototype.configPath = configpath;

new Vue({
    router,
    store,//使用store
    render: h => h(App)
}).$mount('#app');